package com.gscitysfy.cus.drain.modules.warning.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 报警表
 * </p>
 *
 * @author Administrator
 * @since 2022-11-08 11:01:16
 */
@Getter
@Setter
@TableName("drain.drain_monitor_mn_alarm")
public class DrainMonitorMnAlarm implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long cmKid;
    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 纬度
     */
    private BigDecimal latitude;
    /**
     * 报警表主键
     */
    private String id;

    /**
     * 报警设备code
     */
    private String sensorCode;

    /**
     * 报警指标ID
     */
    private String tagId;

    /**
     * 报警指标ID
     */
    private String region;


    /**
     * 报警指标ID
     */
    @TableField(exist = false)
    private String tagName;

    /**
     * 报警值
     */
    private BigDecimal alarmValue;


    /**
     * 报警时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;

    /**
     * 阈值ID
     */
    private String thresholdId;

    /**
     * 代表报警发生时刻的阈值
     */
    private BigDecimal thresholdValue;

    /**
     * 审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date aduitTime;

    /**
     * 审核时间限制，单位秒
     */
    private String aduitLimitTime;

    /**
     * 审核人员姓名
     */
    private String aduitUser;

    /**
     * 报警记录的人工或自动解除时间值
     */
    private LocalDateTime removeTime;

    /**
     * 从产生到解除的过程状态,1已解除，0未解除
     */
    private String alarmStatus;

    /**
     * 审核人员的附带审核留言
     */
    private String aduitRemark;

    /**
     * 报警的级别
     */
    private String alarmLevel;

    /**
     * 该报警的规则类型id
     */
    private String alarmTypeId;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "cm_addtime",fill = FieldFill.INSERT)
    private Date cmAddtime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "cm_uptime", fill = FieldFill.UPDATE)
    private Date cmUptime;

    /**
     * 创建人
     */
    private String cmCreator;

    /**
     * 修改人
     */
    private String cmModifier;

    /**
     * 版本号
     */
    private Integer cmVersion;

    /**
     * 所属区域
     */
    private String cmRegflag;

    /**
     * 所属组织
     */
    private String cmOrgflag;

    /**
     * 逻辑删除0：不删除；1：删除
     */
    private Boolean cmUsable;

    /**
     * 租户ID
     */
    private String cmTenantid;

    /**
     * 报警编码
     */
    private String code;

    /**
     * 审核状态 0：未审核；  1：处置中；2：误报；	3：设备故障 4 已解除 5 已审核
     */
    private String aduitStatus;

    /**
     * 文件url 
     */
    private String filePath;

    /**
     * 预警编号
     */
    private String warnCode;

    /**
     * 维修编号
     */
    private String repairCode;

    /**
     * 审核结果编码(1:自动解除 2:设备异常 yjlx008:管网溢流预警 yjlx007:管网淤积预警 yjlx0061:城市内涝预警)
     */
    private String auditResultCode;

    /**
     * 审核结果描述
     */
    private String auditResultDesc;

    /**
     * 代表产生该条报警记录的点位code
     */
    private String coamPointCode;

    @TableField(exist = false)
    private String address;

    /**
     * 最后报警时间
     */
    private LocalDateTime lastAlarmTime;

    /**
     * 最后报警等级
     */
    private String lastAlarmLevel;

    /**
     * 最后报警值
     */
    private BigDecimal lastAlarmValue;

    /**
     * 最新监测值
     */
    private BigDecimal lastMonitorValue;

    /**
     * 最新监测时间
     */
    private LocalDateTime lastMonitorTime;

    /**
     * 是否定时器查询
     */
    @TableField(exist = false)
    private String isJobQuery;

    @TableField(exist = false)
    private String coamEquipTypeName;

    @TableField(exist = false)
    private String coamEquipType;
}
